package com.yunxi.finance.service;

import com.yunxi.core.web.ApiResult;
import com.yunxi.finance.pojo.*;

import java.math.BigDecimal;
import java.util.List;

public interface FinanceComputeDubboService {

    /**
     * 金融计算器项目分页查询
     *
     * @param queryVO 查询条件
     * @return 查询结果
     */
    ApiResult page(FinancialComputeColumnsReqVO queryVO, Integer pageNum, Integer pageSize);

    /**
     * 金融计算器项目不分页查询
     *
     * @param queryVO 查询条件
     * @return 查询结果
     */
    ApiResult list(FinancialComputeColumnsReqVO queryVO);

    /**
     * load by id
     *
     * @param id id
     * @return 查询结果
     */
    ApiResult load(String id);

    /**
     * 保存
     *
     * @param editVO editVO
     * @return ApiResult
     */
    ApiResult save(FinancialComputeColumnsEditVO editVO);


    BigDecimal computeLeaseContractAmount(LeaseContractAmountComputeReqVO vo);

    BigDecimal computeDownPaymentAmount(DownPaymentAmountComputeReqVO vo);

    BigDecimal computeMarginAmount(MarginAmountComputeReqVO vo);

    BigDecimal computeLeaveEnoughAmount(LeaveEnoughAmountComputeReqVO vo);

    BigDecimal computeMonthlyRent(MonthlyRentComputeReqVO vo);

    BigDecimal computeFinancingPrincipal(FinancingPrincipalComputeReqVO vo);

    BigDecimal queryPriceByCatalogCode(String catalogCode);


    List<FinancialComputeColumnsRespVO> queryColumnModel(String type);
}
